package org.dmcs.homework.statistics.api;

import Jama.Matrix;

/**
 * A tool for optimal feature space selection.
 * @author Zielony
 * @version 1.0
 */
public interface IFeatureSetSelector {
	/**
	 * Selects the optimal feature space of any dimension that displays the optimal
	 * separation between the given <code>classes</code> and the given data set.
	 * @param testData the given data set.
	 * @param classes the description of the classes existing in the set.
	 * @return the indices of the features belonging to the optimal feature set.
	 */
	public int[] selectOptimalFeatureSet(Matrix testData, int[][] classes);
	
	/**
	 * Selects the optimal feature space of given dimensionality that displays the
	 * optimal separation between the given <code>classes</code> and the given data set.
	 * @param testData the given data set.
	 * @param classes the description of the classes existing in the set.
	 * @param featureCount the number of dimensions required.
	 * @return the indices of the features belonging to the optimal feature set.
	 */
	public int[] selectOptimalFeatureSet(Matrix testData, int[][]classes, int featureCount);
}